iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 12
0
自我挑戰組

30天Python學習分享路程系列 第 12

什麼是HTTP協定?

  • 分享至 

  • xImage
  •  

前言

雖然我得目的是要學習Python但是就像說你要寫一個影像辨識軟體,但是你不懂電腦是如何處理影像的
你只是會用別人的API而已,要寫網路爬蟲你也必須要清楚網路的相關知識才行,不然遇到問題你就會卡在那了,聰明的你可能就會上網來發問了,但是工程師必須要會解決問題

HTTP協定

https://ithelp.ithome.com.tw/upload/images/20171231/20107812OOwbcs9loz.png

上面的圖是自己畫的比較醜,請見諒
我們可以使用Chrome與FireFox等瀏覽器當作我們的Client端,而當我們要去瀏覽網站時會透過
HTTP協定或HTTPS協定去跟網站請求網頁資訊,那我們要跟人家請求資源時是不是要告訴人家,
1.要回傳什麼樣的資訊
2.要用什麼樣的方式跟我溝通
3.我的位址在哪裡,你要怎麼回傳訊息給我
4.我要用什麼樣的方式呈現資訊

我們來看一個Request的Headers
https://ithelp.ithome.com.tw/upload/images/20171231/20107812sQdaQrlzZr.png

上圖是一個Request的實例,我們可以使用開發者工具來查看Request,Response的Headers

URI

HTTP/HTTPS請求的資源透過URI(Uniform Resource Identifiers,URI)來做辨識
更清楚的可以參考維基百科(https://zh.wikipedia.org/wiki/%E7%BB%9F%E4%B8%80%E8%B5%84%E6%BA%90%E6%A0%87%E5%BF%97%E7%AC%A6 )
敘述

URI格式

scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]

ex:
http://www.cwb.gov.tw/V7/forecast/week/week.htm
scheme:http
host:www.cwb.gov.tw
port:80(http協定)
path:/V7/forecast/week/week.htm

上面是我們能從此URL看出來的對應訊息~

HTTP狀態碼-常用的

2xx系列(成功):
2XX系列為伺服器成功接收到用戶的請求,以及接受用戶的請求

狀態碼 敘述
200 用戶端要求成功,狀態OK
201 已建立
202 已接受
203 非授權資訊

4xx系列(用戶端錯誤):
4XX系列為用戶端權限,或程式中發生的錯誤有關

狀態碼 敘述
400 錯誤的要求(Bad Request)
401 Unauthorized
403 Forbidden(常見的也是權限問題)
404 找不到頁面或資源(Not Found)

5xx系列(伺服器錯誤):
5xx系列為伺服器端出錯,

狀態碼 敘述
500 內部伺服器發生錯誤(常見有資料庫連線失敗等)
504 Gateway Timeout(預設閘道愈時)

下一篇利用Python Request模組像伺服器做請求


上一篇
Day 11-寫爬蟲程式前你必須知道的些事情
下一篇
Python-使用Request向Server端請求資源
系列文
30天Python學習分享路程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言